Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft: Feature/dotnet6 #65

Draft
wants to merge 495 commits into
base: develop
Choose a base branch
from
Draft

Draft: Feature/dotnet6 #65

wants to merge 495 commits into from

Conversation

mdickson
Copy link
Collaborator

@mdickson mdickson commented Nov 8, 2023

Functional port of OpenSim to use dotnet6 as intended. The various server exes are designed to use a dotnet core compliant host container with DI enabled. This will be a significant set of changes and not likely to release until the new year but I wanted an MR to track development.

mdickson and others added 30 commits February 16, 2024 15:28
…written in some cases since now that we're using DI we can instantiate a class and test it standalone.
…egion are split so you can query an instance that has only region tables (for instance if you've sharded the region databases and put them on the server with the regions.
…e. This used to be done low level using regular assembly loading but you dont get the DI behaviour and dependency tracking that way.
…s dependencies converted to dotnet core framework services.
…more nested crap to deal with. There are still a few things not in the solution just yet. But this 95% of it. The source code is in Source and testing stuff in Tests. I'll move the stuff in bin to Data later since it will touch alot of places that still resolve the libs placed there.
…it and made to run with net8. But I want to have a testing solution especially as I pull together the grid services and so on.
…done. I want to get this into VS Studio as well since some of the refactoring tools are better than what you get in VS Code
…. This is mostly just syncing to share changes, We're still not 100% compiling. Regular Scene next.
…instance. It needs to be initialized during application startup. ServiceLocation is an anti-pattern in the DI based model because ideally a classes configuration should be injected not looked up. But we gotta walk before we can run and this should help.
… use. Push up additional changes to get a current tree on Linux as well.
* dotnet6-removeErrors-202403: Add SmartThreadPool project

* dotnet6-removeErrors-202403: add project OpenSim.Data.SQLite

* dotnet6-removeErrors-202403: add projects OpenSim.Addons.Groups OpenSim.Data.PGSQL OpenSim.Addons.OfflineIM

* feature/dotnet6-removeErrors-202403: Update PGSQL files for TableHandler
pattern and remove compilation errors. Not tested.

* Update configuration in BulletSim

* Update logger invocation in various files.

* feature/dotnet6: removing more reference to log4net.
Added OpenSimServer.Instance that includes pointer to ServiceProvider to
allow non-DI'ed routines to get at services.
Removed log4net from OpenSim.Capabilities.Handlers, OpenSim.Region.ClientStack.LindenUDP,
OpenSim.Region.PhysicsModule.BulletS,, OpenSim.Region.PhysicsModule.ubOde.

* feature/dotnet6: removing more reference to log4net.
Removed from GLotbit, OpenSim.Addons.Groups, OpenSIm.Data.PGSQL, OpenSim.Data.SQLite,
OpenSim.Region.ClientStack, OpenSim.Region.PhysicsModule, Tests.
Removed log4net NuGet package.

* feature/dotnet6: remove log4net references from lots of files
* More elimination of log4net. Region.CoreModules

* Remove even more references to log4net.
Some references left in .config files.
* Fix some missing log4net to MS logging conversions.

* Remove remaining usage of log4net.
The only references left are in some config files (kept for adaption to new ILogging)
…m via the ef core models. Clean up references to them and fix a few more logging references.
* Add dependency to package Microsoft.Extensions.Logging.Console to tests

* Complete renaming OpenSim.PhysicsModules to OpenSim.PhysicsModule.

* Fix up some logging errors that were overlooked or sprung up as logging is converting to MS.Extension.Logging.

* Remove all references and use of Nini

* Update modules implementing I[Non]SharedRegionModule with new Initialize(IConfiguration)
…irely stubbed out but provides a framework for the major servers that will existing implementing the grid. There will also be a user service, inventory service, assets and messaging service. So this is a bit of a step back to the old UGAIM approach originally implemented but also entirely appropriate given the architectural approach. Each server also has a container definition and can be deployed into a container. The HTTP server uses Kestrel which interoperates with proxies well. And everything will be async all the way down.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants